Static analysis of linear congruence equalities among variables of a program
TAPSOFT '91 Proceedings of the international joint conference on theory and practice of software development on Colloquium on trees in algebra and programming (CAAP '91): vol 1
An Automata-Theoretic Approach to Presburger Arithmetic Constraints (Extended Abstract)
SAS '95 Proceedings of the Second International Symposium on Static Analysis
Diophantine Equations, Presburger Arithmetic and Finite Automata
CAAP '96 Proceedings of the 21st International Colloquium on Trees in Algebra and Programming
Counting the solutions of Presburger equations without enumerating them
Theoretical Computer Science - Implementation and application automata
On the Automata Size for Presburger Arithmetic
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
From Automata to Formulas: Convex Integer Polyhedra
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
Analysis of modular arithmetic
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Hi-index | 0.00 |
Number Decision Diagrams (NDD) are finite automata representing sets of integer vectors and have recently been proposed as an efficient data structure for representing sets definable in Presburger arithmetic. In this context, some work has been done in order to generate formulas or sets of generators from the NDDs. Taking another step in this direction, this paper present algorithms that takes as input an NDD and computes the affine hull over ${\mathbb Q}$ or over ${\mathbb Z}$ of the set represented by the NDD, i.e., the smallest set defined by a conjunction of equations or by a conjunction of equations and congruence relations that includes the set represented by the NDD. Our algorithms run in time ${\mathcal O}(|{\mathcal Q}| \cdot |{\Sigma_r^n}| \cdot n )$ and ${\mathcal O}(|{\mathcal Q}^3| \cdot |{\Sigma_r^n}| \cdot {n^3} )$ respectively, where n is the number of components of the vectors represented by the NDD, and |Q| and Σ$_{r}^{n}$ are the number of states and the alphabet of the NDD. On a prototype implementation, the computations of affine hulls of NDDs with more than 100000 states are done in seconds.