A note on Presburger arithmetic with array segments, permutation and equality
Information Processing Letters
Interprocedural dependence analysis and parallelization
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Computation of aliases and support sets
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
Presburger arithmetic with unary predicates is P11 complete
Journal of Symbolic Logic
Verification Decidability of Presburger Array Programs
Journal of the ACM (JACM)
A Decision Procedure for the Correctness of a Class of Programs
Journal of the ACM (JACM)
Communications of the ACM
Dependence Analysis for Supercomputing
Dependence Analysis for Supercomputing
Type reduction and program verification
Type reduction and program verification
Hi-index | 0.00 |
We present an algorithm that takes a first-order sentence &phgr; in full arithmetic with arrays (with quantification over numbers, and with numerical terms serving as array indices), and builds a test formula that can be used to determine which indices of &phgr;'s constituent arrays “really” occur. We call this concept syntactic dependence. We show how to use syntactic dependence as a test for semantic dependence, i.e., the true dependence of &phgr; on the value of an array element. This is useful in truth-maintenance systems or symbolic execution systems, where a sentence may be true in one state but false in the next. More specifically, if we are given an initial state, a sentence (such as &phgr; above) that is true in the initial state, and a list of array elements that may be changing value during a state transition, the algorithm can be used to determine whether &phgr; must remain true after the state transition.