We introduce Subpolyhedra (SubPoly) a new numerical abstract domain to infer and propagate linear inequalities. SubPoly is as expressive as Polyhedra, but it drops some of the deductive power to achieve scalability. SubPoly is based on the insight that the reduced product of linear equalities and intervals produces powerful yet scalable analyses.
Precision can be recovered using hints. Hints can be automatically generated or provided by the user in the form of annotations.
We implemented SubPoly on the top of Clousot, a generic abstract interpreter for .Net. Clousot with SubPoly analyzes very large and complex code bases in few minutes. SubPoly can effciently capture linear inequalities among hundreds of variables, a result well-beyond state-of-the-art implementations of Polyhedra