Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Theory of linear and integer programming
Theory of linear and integer programming
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bounded Model Checking Using Satisfiability Solving
Formal Methods in System Design
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Practical Methods for Proving Program Termination
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
Non-linear loop invariant generation using Gröbner bases
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient Decentralized Monitoring of Safety in Distributed Systems
Proceedings of the 26th International Conference on Software Engineering
Mondriaan memory protection
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Mondrix: memory isolation for linux using mondriaan memory protection
Proceedings of the twentieth ACM symposium on Operating systems principles
Termination proofs for systems code
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
SYNERGY: a new algorithm for property checking
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Monitoring Interfaces for Faults
Electronic Notes in Theoretical Computer Science (ENTCS)
Z-ranking: using statistical analysis to counter the impact of static analysis approximations
SAS'03 Proceedings of the 10th international conference on Static analysis
A decision procedure for bit-vectors and arrays
CAV'07 Proceedings of the 19th international conference on Computer aided verification
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Saturn: a SAT-based tool for bug detection
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Cogent: accurate theorem proving for program verification
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Efficient monitoring of ω-languages
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Program analysis as constraint solving
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
A non-termination criterion for binary constraint logic programs
Theory and Practice of Logic Programming
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,
ACM Computing Surveys (CSUR)
Proving the Correctness of the Implementation of a Control-Command Algorithm
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Refining the control structure of loops using static analysis
EMSOFT '09 Proceedings of the seventh ACM international conference on Embedded software
Experiments with Non-Termination Analysis for Java Bytecode
Electronic Notes in Theoretical Computer Science (ENTCS)
Compositional may-must program analysis: unleashing the power of alternation
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Summarization for termination: no return!
Formal Methods in System Design
Non-termination checking for imperative programs
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
SAS'10 Proceedings of the 17th international conference on Static analysis
Communications of the ACM
Using run time traces in automated programming tutoring
Proceedings of the 16th annual joint conference on Innovation and technology in computer science education
Detecting and escaping infinite loops with jolt
Proceedings of the 25th European conference on Object-oriented programming
Constraint solving for program verification: theory and practice by example
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
SAFERPHP: finding semantic vulnerabilities in PHP applications
Proceedings of the ACM SIGPLAN 6th Workshop on Programming Languages and Analysis for Security
Deciding conditional termination
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Using invariant relations in the termination analysis of while loops
Proceedings of the 34th International Conference on Software Engineering
Detecting fair non-termination in multithreaded programs
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Automated detection of non-termination and nullpointerexceptions for Java Bytecode
FoVeOOS'11 Proceedings of the 2011 international conference on Formal Verification of Object-Oriented Software
Bolt: on-demand infinite loop escape in unmodified binaries
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Non-termination sets of simple linear loops
ICTAC'12 Proceedings of the 9th international conference on Theoretical Aspects of Computing
Finding non-terminating executions in distributed asynchronous programs
SAS'12 Proceedings of the 19th international conference on Static Analysis
Dual analysis for proving safety and finding bugs
Science of Computer Programming
State of the art: Dynamic symbolic execution for automated test generation
Future Generation Computer Systems
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Reasoning about nondeterminism in programs
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Better termination proving through cooperation
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Solving existentially quantified horn clauses
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Adaptively identifying non-terminating code when testing student programs
Proceedings of the 45th ACM technical symposium on Computer science education
Verifying while loops with invariant relations
International Journal of Critical Computer-Based Systems
Hi-index | 0.02 |
The search for proof and the search for counterexamples (bugs) are complementary activities that need to be pursued concurrently in order to maximize the practical success rate of verification tools.While this is well-understood in safety verification, the current focus of liveness verification has been almost exclusively on the search for termination proofs. A counterexample to termination is an infinite programexecution. In this paper, we propose a method to search for such counterexamples. The search proceeds in two phases. We first dynamically enumerate lasso-shaped candidate paths for counterexamples, and then statically prove their feasibility. We illustrate the utility of our nontermination prover, called TNT, on several nontrivial examples, some of which require bit-level reasoning about integer representations.