Skip to content

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

License

Notifications You must be signed in to change notification settings

coq-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.