Timing assumptions and verification of finite-state concurrent systems
Proceedings of the international workshop on Automatic verification methods for finite state systems
Array abstractions using semantic analysis of trapezoid congruences
ICS '92 Proceedings of the 6th international conference on Supercomputing
Communications of the ACM
Predicate abstraction for software verification
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
A static analyzer for large safety-critical software
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
A framework for numeric analysis of array operations
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Lifting abstract interpreters to quantified logical domains
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Numeric program analysis techniques with applications to array analysis and library summarization
Numeric program analysis techniques with applications to array analysis and library summarization
An abstract domain extending difference-bound matrices with disequality constraints
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Array abstractions from proofs
CAV'07 Proceedings of the 19th international conference on Computer aided verification
What else is decidable about integer arrays?
FOSSACS'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Foundations of software science and computational structures
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Programs with lists are counter automata
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
What's decidable about arrays?
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Symbolic String Verification: Combining String Analysis and Size Analysis
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Finding Loop Invariants for Programs over Arrays Using a Theorem Prover
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Program verification using templates over predicate abstraction
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Automatic Verification of Integer Array Programs
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Inferring Dataflow Properties of User Defined Table Processors
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
A Modular Static Analysis Approach to Affine Loop Invariants Detection
Electronic Notes in Theoretical Computer Science (ENTCS)
Symbolic heap abstraction with demand-driven axiomatization of memory invariants
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A parametric segmentation functor for fully automatic and scalable array content analysis
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LPAR'10 Proceedings of the 17th international conference on Logic for programming, artificial intelligence, and reasoning
Automatically inferring quantified loop invariants by algorithmic learning from simple templates
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Precise interprocedural analysis in the presence of pointers to the stack
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
Invariant generation in vampire
TACAS'11/ETAPS'11 Proceedings of the 17th international conference on Tools and algorithms for the construction and analysis of systems: part of the joint European conferences on theory and practice of software
On inter-procedural analysis of programs with lists and data
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
An accurate type system for information flow in presence of arrays
FMOODS'11/FORTE'11 Proceedings of the joint 13th IFIP WG 6.1 and 30th IFIP WG 6.1 international conference on Formal techniques for distributed systems
Cost analysis of object-oriented bytecode programs
Theoretical Computer Science
Invariant and type inference for matrices
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
An analysis of permutations in arrays
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Invariant synthesis for programs manipulating lists with unbounded data
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Fluid updates: beyond strong vs. weak updates
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Case studies on invariant generation using a saturation theorem prover
MICAI'11 Proceedings of the 10th Mexican international conference on Advances in Artificial Intelligence - Volume Part I
Abstract domains for automated reasoning about list-manipulating programs with infinite data
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Lazy abstraction with interpolants for arrays
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
SAFARI: SMT-based abstraction for arrays with interpolants
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Generic Abstraction of Dictionaries and Arrays
Electronic Notes in Theoretical Computer Science (ENTCS)
Inferring Effective Types for Static Analysis of C Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
An abstract domain to infer types over zones in spreadsheets
SAS'12 Proceedings of the 19th international conference on Static Analysis
Inferring complete initialization of arrays
Theoretical Computer Science
QUIC graphs: relational invariant generation for containers
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Counterexample-guided abstraction refinement for linear programs with arrays
Automated Software Engineering
Hi-index | 0.00 |
Array bound checking and array dependency analysis (for parallelization) have been widely studied. However, there are much less results about analyzing properties of array contents. In this paper, we propose a way of using abstract interpretation for discovering properties about array contents in some restricted cases: one-dimensional arrays, traversed by simple "for" loops. The basic idea, borrowed from [GRS05], consists in partitioning arrays into symbolic intervals (e.g., [1,i -- 1], [i,i], [i + 1,n]), and in associating with each such interval I and each array A an abstract variable AI; the new idea is to consider relational abstract properties ψ(AI, BI, ...) about these abstract variables, and to interpret such a property pointwise on the interval I: ∀l ∈ I, ψ(A[l], B[l],...). The abstract semantics of our simple programs according to these abstract properties has been defined and implemented in a prototype tool. The method is able, for instance, to discover that the result of an insertion sort is a sorted array, or that, in an array traversal guarded by a "sentinel", the index stays within the bounds.