The domain of convex polyhedra is employed in several systems for the analysis and verification of hardware and software components.
Current applications span imperative, functional and logic languages, synchronous languages and synchronization protocols,
real-time and hybrid systems. Since the seminal work of P. Cousot and N. Halbwachs, convex polyhedra have thus played an important
role in the formal methods community and several critical tasks rely on their software implementations. Despite this, existing
libraries for the manipulation of convex polyhedra are still research prototypes and suffer from limitations that make their
usage problematic, especially in critical applications. Furthermore, there is inadequate support for polyhedra that are not
necessarily closed (NNC), i.e., polyhedra that are described by systems of constraints where strict inequalities are allowed
to occur. This paper presents the Parma Polyhedra Library, a new, robust and complete implementation of NNC convex polyhedra,
concentrating on the distinctive features of the library and on the novel theoretical underpinnings.
This work has been partly supported by MURST projects “Abstract Interpretation, type systems and control-flow analysis” and
“Aggregate- and number-reasoning for computing: from decision algorithms to constraint programming with multisets, sets, and
maps” and by EPSRC grant GR/R53401/01.