Integer Set Library

isl is a library for manipulating sets and relations of integer points
bounded by linear constraints. Supported operations on sets include
intersection, union, set difference, emptiness check, convex hull,
(integer) affine hull, integer projection, computing the lexicographic
minimum using parametric integer programming, coalescing and
parametric vertex enumeration. It also includes an ILP
solver based on generalized basis reduction, transitive closures
on maps (which may encode infinite graphs), dependence analysis and
bounds on piecewise step-polynomials.
For more information see
the online user manual
(html) or
the complete manual (pdf).
For an introduction to the underlying concepts, see
Presburger Formulas and Polyhedral Compilation.
The barvinok package
contains an
iscc
calculator that exposes some of the operations supported by isl.