An improved algorithm for transitive closure on acyclic digraphs
Theoretical Computer Science - Thirteenth International Colloquim on Automata, Languages and Programming, Renne
Introduction to algorithms
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
A canonical form for generalized linear constraints
Journal of Symbolic Computation
Abstract debugging of higher-order imperative languages
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Variable elimination for generalized linear constraints
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
Model-checking in dense real-time
Information and Computation - Special issue: selections from 1990 IEEE symposium on logic in computer science
Interprocedural may-alias analysis for pointers: beyond k-limiting
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Constraint-based array dependence analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
A fast algorithm for the bound consistency of alldiff constraints
AAAI '98/IAAI '98 Proceedings of the fifteenth national/tenth conference on Artificial intelligence/Innovative applications of artificial intelligence
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Timing Assumptions and Verification of Finite-State Concurrent Systems
Proceedings of the International Workshop on Automatic Verification Methods for Finite State Systems
Semantic Analysis of Interval Congruences
Proceedings of the International Conference on Formal Methods in Programming and Their Applications
A Few Graph-Based Relational Numerical Abstract Domains
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
On the Distribution of the Transitive Closure in a Random Acyclic Digraph
ESA '93 Proceedings of the First Annual European Symposium on Algorithms
Nordic Journal of Computing
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Processing conjunctive predicates and queries
VLDB '80 Proceedings of the sixth international conference on Very Large Data Bases - Volume 6
Static analysis in disjunctive numerical domains
SAS'06 Proceedings of the 13th international conference on Static Analysis
Trace partitioning in abstract interpretation based static analyzers
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Efficient manipulation of disequalities during dependence analysis
LCPC'02 Proceedings of the 15th international conference on Languages and Compilers for Parallel Computing
Discovering properties about arrays in simple programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Refining Abstract Interpretation-Based Static Analyses with Hints
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Interval slopes as a numerical abstract domain for floating-point variables
SAS'10 Proceedings of the 17th international conference on Static analysis
An analysis of permutations in arrays
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Donut domains: efficient non-convex domains for abstract interpretation
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
An abstract domain to infer types over zones in spreadsheets
SAS'12 Proceedings of the 19th international conference on Static Analysis
Hi-index | 0.00 |
Knowing that two numerical variables always hold different values, at some point of a program, can be very useful, especially for analyzing aliases: if i ≠ j, then A[i] and A[j] are not aliased, and this knowledge is of great help for many other program analyses. Surprisingly, disequalities are seldom considered in abstract interpretation, most of the proposed numerical domains being restricted to convex sets. In this paper, we propose to combine simple ordering properties with disequalities. "Difference-bound matrices" (or DBMs) is a domain proposed by David Dill, for expressing relations of the form "x - y ≤ c" or "c1 ≤ x ≤ c2." We define dDBMs ("disequalities DBMs") as conjunctions of DBMs with simple disequalities of the form "x ≠ y" or "x ≠ 0". We give algorithms on dDBMs, for deciding the emptiness, computing a normal form, and performing the usual operations of an abstract domain. These algorithms have the same complexity (O(n3), where n is the number of variables) than those for classical DBMs, if the variables are considered to be valued in a dense set (R or Q). In the arithmetic case, the emptiness decision is NP-complete, and other operations run in O(n5).