A generalization of the differential approach to recursive query evaluation
Journal of Logic Programming
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
Asymptotically fast triangularization of matrices over rings
SIAM Journal on Computing
Journal of the ACM (JACM)
Finite Differencing of Computable Expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Hacker's Delight
The Java Language Specification
The Java Language Specification
Discovering affine equalities using random interpretation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Propagating differences: an efficient new fixpoint algorithm for distributive constraint systems
Nordic Journal of Computing
Precise interprocedural analysis through linear algebra
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Computing polynomial program invariants
Information Processing Letters
Intermediate-representation recovery from low-level code
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Weighted pushdown systems and their application to interprocedural dataflow analysis
SAS'03 Proceedings of the 10th international conference on Static analysis
Interprocedural herbrand equalities
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Analysis of modular arithmetic
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
A generic framework for interprocedural analysis of numerical properties
SAS'05 Proceedings of the 12th international conference on Static Analysis
Analysing All Polynomial Equations in ${\mathbb Z_{2^w}}$
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Efficient Craig Interpolation for Linear Diophantine (Dis)Equations and Linear Modular Equations
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Inferring Congruence Equations Using SAT
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Verification of arithmetic datapaths using polynomial function models and congruence solving
Proceedings of the 2008 IEEE/ACM International Conference on Computer-Aided Design
Loop-extended symbolic execution on binary programs
Proceedings of the eighteenth international symposium on Software testing and analysis
Efficient Craig interpolation for linear Diophantine (dis)equations and linear modular equations
Formal Methods in System Design
A Smooth Combination of Linear and Herbrand Equalities for Polynomial Time Must-Alias Analysis
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Interval analysis of microcontroller code using abstract interpretation of hardware and software
Proceedings of the 13th International Workshop on Software & Compilers for Embedded Systems
Quadtrees as an Abstract Domain
Electronic Notes in Theoretical Computer Science (ENTCS)
Automatic abstraction for intervals using Boolean formulae
SAS'10 Proceedings of the 17th international conference on Static analysis
Range analysis of microcontroller code using bit-level congruences
FMICS'10 Proceedings of the 15th international conference on Formal methods for industrial critical systems
Transfer function synthesis without quantifier elimination
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Statically-directed dynamic automated test generation
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Abstract domains of affine relations
SAS'11 Proceedings of the 18th international conference on Static analysis
Fast interprocedural linear two-variable equalities
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic abstraction for congruences
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Termination analysis of imperative programs using bitvector arithmetic
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Inferring definite counterexamples through under-approximation
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
A method for symbolic computation of abstract operations
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Fully Bounded Polyhedral Analysis of Integers with Wrapping
Electronic Notes in Theoretical Computer Science (ENTCS)
Extending quantifier elimination to linear inequalities on bit-vectors
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Abstract interpretation of microcontroller code: Intervals meet congruences
Science of Computer Programming
Solving difference constraints over modular arithmetic
CADE'13 Proceedings of the 24th international conference on Automated Deduction
Hi-index | 0.00 |
We consider integer arithmetic modulo a power of 2 as providedby mainstream programming languages like Java or standardimplementations of C. The difficulty here is that, for w 1, the ring Zm of integers modulom = 2w has zero divisors and thus cannotbe embedded into a field. Not withstanding that, we present intra-and interprocedural algorithms for inferring for every programpoint u affine relations between program variables valid atu. If conditional branching is replaced withnondeterministic branching, our algorithms are not only sound butalso complete in that they detect all valid affinerelations in a natural class of programs. Moreover, they run intime linear in the program size and polynomial in the number ofprogram variables and can be implemented by using the same modularinteger arithmetic as the target language to be analyzed. We alsoindicate how our analysis can be extended to deal with equalityguards, even in an interprocedural setting.