EN FR
EN FR


Section: New Software and Platforms

Coq-Polyhedra

Keywords: Coq - Polyhedra - Automated theorem proving - Linear optimization

Scientific Description: Coq-Polyhedra is a library providing a formalization of convex polyhedra in the Coq proof assistant. While still in active development, it provides an implementation of the simplex method, and already handles the basic properties of polyhedra such as emptiness, boundedness, membership. Several fundamental results in the theory of convex polyhedra, such as Farkas Lemma, duality theorem of linear programming, and Minkowski Theorem, are also formally proved.

The formalization is based on the Mathematical Components library, and makes an extensive use of the boolean reflection methodology.

Functional Description: Coq-Polyhedra is a library which aims at formalizing convex polyhedra in Coq

News Of The Year: Coq-Polyhedra now provides most of the basic operations on polyhedra. They are expressed on a quotient type that avoids reasoning with particular inequality representations. They include : * the construction of elementary polyhedra (half-spaces, hyperplanes, affine spaces, orthants, simplices, etc) * basic operations such as intersection, projection (thanks to the formalization of the Fourier-Motzkin algorithm), image under linear functions, computations of convex hulls, finitely generated cones, etc. * computation of affine hulls of polyhedra, as well as their dimension

Thanks to this, we have made huge progress on the formalization of the combinatorics of polyhedra. The poset of faces, as well as its fundamental properties (lattice, gradedness, atomicity and co-atomicity, etc) are now formalized. The manipulation of the faces is based on an extensive use of canonical structures, that allows to get the most appropriate inequality representations for reasoning. In this way, we arrive at very concise and elegant proofs, closer to the pen-and-paper ones.