The Parma Polyhedra Library (PPL) provides numerical abstractions
especially targeted at
applications in the field of analysis and verification of complex systems.
These abstractions include convex polyhedra,
defined as the intersection of a finite number of (open or closed)
halfspaces, each described by a linear inequality (strict or
non-strict) with rational coefficients; some special
classes of polyhedra shapes that offer interesting
and grids which represent regularly spaced points
that satisfy a set of linear congruence relations.
The library also supports finite powersets and products of (any kind of)
polyhedra and grids, a mixed integer linear programming problem
solver using an exact-arithmetic version of the simplex algorithm,
a parametric integer programming solver, and primitives for termination analysis via the automatic synthesis of
linear ranking functions.
are available on the PPL's internal
The Parma Polyhedra Library is:
x + 2*y + 5*z <= 7 when you mean it);
(available virtual memory is the only limitation to the dimension of anything);
(written in standard C++, with C, Java, Objective CAML and Prolog interfaces,
and following all the applicable standards);
(never leaks resources or leaves invalid object fragments around);
(and we hope to make it even more so);
(distributed under the terms of the
GNU General Public License
version 3 or any later version).
This release includes support for positive time elapse, a new operator on polyhedra, improvements to the Java interface, several portability improvements and a few bug fixes. See the release notes for more information.
This release includes support for the optimized representation of sparse vectors of coefficients, achieving significant performance improvements, e.g., when dealing with constraint systems describing weakly relational abstractions such as boxes and octagonal shapes. See the release notes for more information.
This release includes portability improvements, a couple of new minor features, some interface changes and an important bug fix concerning the PIP solver. See the release notes for more information.
For older news items, see the complete news
or browse the latest hyperlinked user's manual both
in HTML format
You can also jump straight to the latest version's
Visiting the rest of this site will give you access to more information,
more documentation and more download options.
Developer's jump station:
Tinderbox panel for PPL-HEAD