Skip to content

rocq-community/buchberger

Repository files navigation

Buchberger

Docker CI Nix CI Contributing Code of Conduct Zulip

A verified implementation of Buchberger's algorithm in Coq, which computes the Gröbner basis associated with a polynomial ideal. Also includes a constructive proof of Dickson's lemma.

Meta

Building and installation instructions

The easiest way to install the latest released version of Buchberger is via OPAM:

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

To instead build and install manually, do:

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

Documentation

This project contains a Coq formalization of Buchberger's algorithm. It is composed of:

  • A proof of correctness of the algorithm as described in A machine checked implementation of Buchberger's algorithm, Journal of Automated Reasoning, January 2001.
  • An implementation of the algorithm. With respect to the paper, terms are not abstracted but built directly from coef and monomials.
  • A constructive proof of Dickson's lemma due to Henrik Persson.

In the file Extract.v, it is explained how the extracted code found in sin_num.ml can be used to compute Gröbner bases.

Related work

An alternative formalization of Gröbner bases in Coq using the SSReflect proof language and the Mathematical Components library is available elsewhere.

About

Verified implementation in Coq of Buchberger's algorithm for computing Gröbner bases [maintainer=@palmskog]

Topics

Resources

License

Stars

Watchers

Forks

Contributors 5