Introduction to algorithms
The pointer assertion logic engine
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Multiple Counters Automata, Safety Analysis and Presburger Arithmetic
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
Efficient Verification of Sequential and Concurrent C Programs
Formal Methods in System Design
Termination proofs for systems code
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Variance analyses from invariance analyses
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Abstract Regular Tree Model Checking
Electronic Notes in Theoretical Computer Science (ENTCS)
Verifying temporal heap properties specified via evolution logic
ESOP'03 Proceedings of the 12th European conference on Programming
Software verification with BLAST
SPIN'03 Proceedings of the 10th international conference on Model checking software
Abstract regular tree model checking of complex dynamic data structures
SAS'06 Proceedings of the 13th international conference on Static Analysis
Automated verification of the deutsch-schorr-waite tree-traversal algorithm
SAS'06 Proceedings of the 13th international conference on Static Analysis
Flat parametric counter automata
ICALP'06 Proceedings of the 33rd international conference on Automata, Languages and Programming - Volume Part II
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
Shape analysis by predicate abstraction
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Automatic termination proofs for programs with shape-shifting heaps
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
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
Abstraction refinement for termination
SAS'05 Proceedings of the 12th international conference on Static Analysis
Automatic verification of parameterized data structures
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Automata-Based Termination Proofs
CIAA '09 Proceedings of the 14th International Conference on Implementation and Application of Automata
Automatic numeric abstractions for heap-manipulating programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying parametrised hardware designs via counter automata
HVC'07 Proceedings of the 3rd international Haifa verification conference on Hardware and software: verification and testing
Hi-index | 0.00 |
We consider the termination problem of programs manipulating treelike dynamic data structures. Our approach is based on a counter-example guided abstraction refinement loop. We use abstract regular tree model-checking to infer invariants of the program. Then, we translate the program to a counter automaton (CA) which simulates it. If the CA can be shown to terminate using existing techniques, the program terminates. If not, we analyse the possible counterexample given by a CA termination checker and either conclude that the program does not terminate, or else refine the abstraction and repeat. We show that the spuriousness problem for lasso-shaped counterexamples is decidable in some non-trivial cases. We applied the method successfully on several interesting case studies.