Skip to content

Latest commit

 

History

History
91 lines (68 loc) · 3.74 KB

README.md

File metadata and controls

91 lines (68 loc) · 3.74 KB

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.